The need to store digital files, documents, pictures, images and other data continues to increase rapidly. In connection with the electronic storage of data, systems incorporating more than one storage device have been devised. In general, using a number of storage devices in a coordinated fashion in order to store data can increase the total storage volume of the system. In addition, data can be distributed across the multiple storage devices such that data will not be irretrievably lost if one of the storage devices (or in some cases more than one storage device) fails. An additional advantage that can be achieved by coordinating the operation of a number of individual storage devices is improved data access and/or storage times.
Storage systems or storage systems that provide at least some integration of individual storage devices, such as JBOD (Just a Bunch of Disks), SBOD (Switched Bunch of Disks) or RAID (Redundant Array of Independent Disks) systems have been developed. Storage systems are typically deployed as a number of individual disk drives or other storage devices within an enclosure to present an integrated component to the user. In addition to the individual storage devices, the enclosure may contain one or more power supplies and one or more cooling devices. Integrated storage systems may also include one or more storage system controllers that can be used to control the distribution of data across the individual storage devices in a given storage network.
Historically, it has been up to the administrator/operator of a storage network to determine and ensure that these storage systems are installed properly and the ports of the storage system controllers are properly designated and/or are communicating with the appropriate set of devices. Furthermore, port operating modes have been predetermined, and the orientation of a particular controller input has also been predetermined. In typical storage system controllers, the ports are predefined to be either an initiator port or a target port. Initiator ports typically connect to storage devices and the storage system controller operates these initiator ports in a predetermined fashion according to which commands are sent to the storage devices, as the targets of the storage system controller. The ports of typical storage system controllers can also include ports that are operating in a predetermined target mode. These target ports typically connect to hosts or a Storage Area Network (SAN), and generally wait to receive commands from the hosts or SAN devices that act as initiators for the storage system controller.
Using typical storage system controllers, administrators are required to have knowledge of all devices interconnected to a particular port of a storage system controller. If one port is connected to an array of disks then the administrator needs to know this and install the storage system controller such that the port is connected to the array of disks is configured to operate accordingly. If a port is connected to host devices, or has at least one host device residing thereon, the administrator of the storage network needs to know this information in order to properly configure that port. As storage networks expand due to increases in the required storage capacity of an enterprise, the administrator can be required to retain and track a large amount of this configuration information.
A complicating situation can arise where one of the devices on a given network is replaced. For example, if a device that resides on an initiator port is replaced with a device having host capabilities then the storage system controller may not operate the port properly, at least until the storage system controller is manually updated. Additionally, if cables are not marked properly before installation, a non-trivial amount of work will need to be performed to determine which cables need to be connected to which ports. Accordingly, it would be advantageous to have a controller that can accept connections with different types of devices on a port and configure itself to operate the port in the proper manner.